/*************************************************************************
 * Copyright 2008 David Almilli
 *  
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License at 
 *  
 *     http://www.apache.org/licenses/LICENSE-2.0 
 *      
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 * See the License for the specific language governing permissions and 
 * limitations under the License.
 **************************************************************************/
package com.tivo.hme.bananas;

import java.awt.Rectangle;

public interface PlusView {
    /**
     * Tells whether the resource is going to be removed when the view is removed.  You don't want
     * to dispose of shared resources or other views won't render properly.  This includes any 
     * resources that come from the BSkin elements.
     * @return true to remove the resource when the view is removed, false to keep it around.
     */
    public boolean getDisposeResourceOnRemove();

    /**
     * Changes whether the resource is going to be removed when the view is removed.  You don't want
     * to dispose of shared resources or other views won't render properly.  This includes any 
     * resources that come from the BSkin elements.
     * @param dispose true to remove the resource when the view is removed, false to keep it around.
     */
    public void setDisposeResourceOnRemove(boolean dispose);
    
    /**
     * Gets the focus bounds of this view.  The location should be relative to the screen location
     * and not it's parent view.  You may want to override the bounds so that the view can overlap
     * other views, but still navigate focus properly.
     * @return the focus bounds.
     */
    public Rectangle getScreenFocusBounds();
}
